package org.sunrise.game.common.network.start;

import org.sunrise.game.common.network.client.BaseClientManager;
import org.sunrise.game.common.network.message.BaseMessage;
import org.sunrise.game.common.utils.Utils;

public class TestClientStartUp {
    public static void main(String[] args) throws InterruptedException {
        var client1 = BaseClientManager.createBaseClient("client-node1");
        client1.connectBlock(Utils.getLocalIpAddress(), 1000);

        var client2 = BaseClientManager.createBaseClient("client-node1");
        client2.connectBlock(Utils.getLocalIpAddress(), 1001);

        var client3 = BaseClientManager.createBaseClient();
        client3.connectBlock(Utils.getLocalIpAddress(), 1002);

        // 1.使用BaseMessage的默认构造函数，未指定此消息所属的客户端节点id
        // 使用client1.sendToServer发送
        BaseMessage message1 = new BaseMessage();
        message1.setMsg("message1");
        client1.sendToServer(message1); //发送成功，由client1发送给所连接的服务器

        // 2.使用BaseMessage的默认构造函数，未指定此消息所属的客户端节点id
        // 使用BaseClientManager.sendToServer发送
        BaseMessage message2 = new BaseMessage();
        message2.setMsg("message2");
        BaseClientManager.sendToServer(message2); //发送失败，并不知道此消息由谁发出

        // 3.BaseMessage构造函数传入此消息所属的客户端节点
        // 使用client1.sendToServer发送
        BaseMessage message3 = new BaseMessage(client1.getNodeId());
        message3.setMsg("message3");
        client1.sendToServer(message3); //发送成功，由client1发送给所连接的服务器

        // 4.BaseMessage构造函数指定此消息所属的客户端节点
        // 使用BaseClientManager.sendToServer发送
        BaseMessage message4 = new BaseMessage(client1.getNodeId());
        message4.setMsg("message4");
        BaseClientManager.sendToServer(message4); //发送成功，由client1发送给所连接的服务器
    }
}
